package com.study.db;

import java.util.List;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory;

import com.study.bean.courseBean;




/**
 * 单例模式实现数据源
 * 
 * @author Administrator
 *
 */
public class DBCPDataSource {
	// 定义一个单例模式的静态变量
	private static DataSource ds = null;

	// 构造方法私有化
	private DBCPDataSource() {

	}

	// 提供一个静态的全局的访问入口【没有进行多线程同步处理】
	public static DataSource getDataSource() {
		// 是否第一次访问，并进行初始化
		if (ds == null) {
			try {
				// 使用Properties读取配置信息
				Properties prop = new Properties();
				// 加载配置信息
				prop.load(DBCPDataSource.class.getClassLoader().getResourceAsStream("db.properties"));
				// 使用工程类初始化数据源
				ds = BasicDataSourceFactory.createDataSource(prop);
			} catch (Exception e) {
				// dbcp数据源初始化异常
				System.out.println("dbcp数据源初始化异常:" + e.getMessage());
				e.printStackTrace();
			}

		}
		return ds;
	}

}
